package priv.pront.code.robot.roboCom_uni;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;
import java.util.ArrayList;
import java.util.List;

/**
 * @Description:
 * @Author: pront
 * @Time:2023-07-02 18:13
 */
public class P1927_防护伞 {

    static StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
    static int n;
    static double pai = 3.1415926535;
    static double R = 10000000000000.0, ans;
    static List<Info> list = new ArrayList<>();

    static class Info{
        public int x;
        public int y;

        public Info(int x, int y){
            this.x = x;
            this.y = y;
        }
    }
    public static void main(String[] args) throws IOException {
        st.nextToken();
        n = (int) st.nval;
        for (int i = 0; i < n; i++) {
            st.nextToken();
            int x = (int) st.nval;
            st.nextToken();
            int y = (int) st.nval;
            list.add(new Info(x, y));
        }

        for (int i = 0; i < list.size(); i++) {
            Info cur = list.get(i);
            double cR = 0;
            for (int j = 0; j < list.size(); j++) {
                if(i == j) continue;
                Info cur1 = list.get(j);
                cR = Math.max(cR, Math.abs(Math.sqrt((cur.x - cur1.x) * (cur.x - cur1.x) + (cur.y - cur1.y) * (cur.y - cur1.y))));
            }
            R = Math.min(R, cR);
        }
        ans = R * R * pai;
        String format = String.format("%.4f", ans);
        System.out.println(format);
    }
}
